#ifndef ARTILLERYSYSTEM_MISSILE_H
#define ARTILLERYSYSTEM_MISSILE_H

#include <string>
#include "../_identifiable/Identifiable.h"

class Missile : public Identifiable {
private:
    std::string name;
    float flightRange;
    float impactArea;
    int calibre;
    float length;
    float weight;
    float speed;
public:
    float getSpeed() const;

    void setSpeed(float speed);

    [[nodiscard]] float getWeight() const;

    void setWeight(float weight);

    [[nodiscard]] int getLength() const;

    void setLength(int length);

    [[nodiscard]] int getCalibre() const;

    void setCalibre(int calibre);

    [[nodiscard]] float getImpactArea() const;

    void setImpactArea(float impactArea);

    [[nodiscard]] float getFlightRange() const;

    [[nodiscard]] const std::string &getName() const;

    void setFlightRange(float flightRange);
    
    Missile(std::string name, int calibre, float length, float weight, float flightRange, float impactArea, float speed);
};

#endif //ARTILLERYSYSTEM_MISSILE_H
